// first-paint：首屏渲染时间，是网页加载性能的重要指标，它表示浏览器第一次在屏幕上渲染像素的时间点，也就是用户开始看到页面内容的时间(<1S)

// 优化策略:
    //减少服务器响应时间
    // 优化关键渲染路径
    // 减少 CSS 和 JavaScript 的阻塞时间
    // 使用高效的图像格式和适当的大小
    // 预加载关键资源


import { lazyReportBatch } from "../report";
export default function observerPaint():void {
   const PAINT_TYPE = 'paint';
   const FP_NAME = 'first-paint';
    const entryHandler = (list:PerformanceObserverEntryList,observer:PerformanceObserver):void => {
        for (const entry of list.getEntries()) {
            if (entry.name === FP_NAME) {
                observer.disconnect();
                const json = entry.toJSON();
                console.log(json);
                const reportData = {
                    ...json,
                    type: 'performance',
                    subType: entry.name,
                    pageUrl: window.location.href,
                }
                console.log(reportData);
                // 发送数据 todo;
               // lazyReportBatch(reportData);
               
            }
        }
    
    }
    // 统计和计算fp的时间
    const observer = new PerformanceObserver(entryHandler);
    // buffered: true 确保观察到所有paint事件
    observer.observe({type: PAINT_TYPE, buffered: true});
}
